<!DOCTYPE html>
<html lang=zh-CN>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="google-site-verification" content="xBT4GhYoi5qRD5tr338pgPM5OWHHIDR6mNg1a3euekI" />
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta property="og:description" content="samuel-24276的博客">
    <meta property="og:type" content="website">
    <meta name="description" content="samuel-24276的博客">
    <meta name="keyword"  content="aircloud">
    <link rel="shortcut icon" href="/myblog/img/favicon.ico">

    <title>
        
        VS属性设置 - samuel-24276的博客 | samuel-24276&#39;s Blog
        
    </title>

    <!-- Custom CSS -->
    
<link rel="stylesheet" href="/myblog/css/aircloud.css">

    
<link rel="stylesheet" href="/myblog/css/gitment.css">

    <!--<link rel="stylesheet" href="https://imsun.github.io/gitment/style/default.css">-->
    <link href="//at.alicdn.com/t/font_620856_28hi1hpxx24.css" rel="stylesheet" type="text/css">
    <!-- ga & ba script hoook -->
    <script></script>
<meta name="generator" content="Hexo 7.1.1"></head>

<body>

<div class="site-nav-toggle" id="site-nav-toggle">
    <button>
        <span class="btn-bar"></span>
        <span class="btn-bar"></span>
        <span class="btn-bar"></span>
    </button>
</div>

<div class="index-about">
    <i> Like what you do, do what you like </i>
</div>

<div class="index-container">
    
    <div class="index-left">
        
<div class="nav" id="nav">
    <div class="avatar-name">
        <div class="avatar ">
            <img src="/myblog/img/avatar.jpg" />
        </div>
        <div class="name">
            <i>samuel-24276</i>
        </div>
    </div>
    <div class="contents" id="nav-content">
        <ul>
            <li >
                <a href="/myblog/">
                    <i class="iconfont icon-shouye1"></i>
                    <span>主页</span>
                </a>
            </li>
            <li >
                <a href="/myblog/tags">
                    <i class="iconfont icon-biaoqian1"></i>
                    <span>标签</span>
                </a>
            </li>
            <li >
                <a href="/myblog/archives">
                    <i class="iconfont icon-guidang2"></i>
                    <span>存档</span>
                </a>
            </li>
            <li >
                <a href="/myblog/collect/">
                    <i class="iconfont icon-shoucang1"></i>
                    <span>收藏</span>
                </a>
            </li>
            <li >
                <a href="/myblog/about/">
                    <i class="iconfont icon-guanyu2"></i>
                    <span>关于</span>
                </a>
            </li>
            
            <li>
                <a id="search">
                    <i class="iconfont icon-sousuo1"></i>
                    <span>搜索</span>
                </a>
            </li>
            
        </ul>
    </div>
    
        <div id="toc" class="toc-article">
    <ol class="toc"><li class="toc-item toc-level-1"><a class="toc-link" href="#1-%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%E5%92%8C%E9%A1%B9%E7%9B%AE%E6%96%87%E4%BB%B6%E5%A4%B9%E5%8C%85%E5%90%AB%E5%85%B3%E7%B3%BB-c-%E9%A1%B9%E7%9B%AE"><span class="toc-text">1.解决方案和项目文件夹包含关系(c++项目)</span></a></li><li class="toc-item toc-level-1"><a class="toc-link" href="#2-%E5%B8%B8%E7%94%A8%E9%A1%B9%E7%9B%AE%E5%B1%9E%E6%80%A7%E5%92%8C%E7%B3%BB%E7%BB%9F%E9%85%8D%E7%BD%AE%E5%8F%98%E9%87%8F%E5%85%B3%E7%B3%BB"><span class="toc-text">2.常用项目属性和系统配置变量关系</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#2-1-%E8%BE%93%E5%87%BA%E7%9B%AE%E5%BD%95%E4%B8%8E%E8%BE%93%E5%87%BA%E6%96%87%E4%BB%B6"><span class="toc-text">2.1.输出目录与输出文件</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#2-2-%E5%B7%A5%E4%BD%9C%E7%9B%AE%E5%BD%95"><span class="toc-text">2.2.工作目录</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#2-3-%E5%91%BD%E4%BB%A4"><span class="toc-text">2.3.命令</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#2-4-%E9%99%84%E5%8A%A0%E4%BE%9D%E8%B5%96%E9%A1%B9"><span class="toc-text">2.4.附加依赖项</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#2-5-%E9%A1%B9%E7%9B%AE%E8%AE%BE%E7%BD%AE%E4%B8%AD%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%E7%9A%84%E5%AE%8F"><span class="toc-text">2.5.项目设置中可以使用的宏</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#%E9%A1%B9%E7%9B%AE%E4%B8%AD%E7%BC%96%E8%AF%91%E4%BB%A3%E7%A0%81%E6%97%B6%E8%BF%9B%E8%A1%8C%E5%AE%8F%E6%8E%A7%E5%88%B6%EF%BC%8C%E5%8F%AF%E5%9C%A8%E9%A1%B9%E7%9B%AE%E5%90%8D%E4%B8%8A%E5%8F%B3%E9%94%AE%E5%B1%9E%E6%80%A7-c-c-%E9%A2%84%E5%A4%84%E7%90%86%E5%99%A8-%E9%A2%84%E5%A4%84%E7%90%86%E5%99%A8%E5%AE%9A%E4%B9%89%E4%B8%AD%E5%A2%9E%E5%88%A0%E6%8E%A7%E5%88%B6%E5%AE%8F%E3%80%82"><span class="toc-text">项目中编译代码时进行宏控制，可在项目名上右键属性-&gt;c&#x2F;c++-&gt;预处理器-&gt;预处理器定义中增删控制宏。</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#2-6-VS%E9%93%BE%E6%8E%A5lib-%E5%8F%8A-dll-%E6%96%87%E4%BB%B6%E7%9A%84%E6%96%B9%E6%B3%95"><span class="toc-text">2.6.VS链接lib 及 dll 文件的方法</span></a></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#3-%E9%99%841%EF%BC%9AC-%E8%8E%B7%E5%8F%96%E8%AE%BE%E7%BD%AE%E5%B7%A5%E4%BD%9C%E7%9B%AE%E5%BD%95%E5%92%8C%E6%89%A7%E8%A1%8C%E7%9B%AE%E5%BD%95%E4%BB%A3%E7%A0%81"><span class="toc-text">3.附1：C#获取设置工作目录和执行目录代码</span></a></li><li class="toc-item toc-level-1"><a class="toc-link" href="#4-%E9%99%842%EF%BC%9Avs%EF%BC%88%E4%B8%BB%E8%A6%81%E6%98%AF-Net%EF%BC%89%E4%B8%AD%E5%B8%B8%E7%94%A8%E7%9A%84%E5%90%84%E7%A7%8D%E7%B1%BB%E5%9E%8B%E7%9A%84%E6%96%87%E4%BB%B6"><span class="toc-text">4.附2：vs（主要是.Net）中常用的各种类型的文件</span></a></li></ol>
</div>
    
</div>


<div class="search-field" id="search-field">
    <div class="search-bg" id="search-bg"></div>
    <div class="search-container">
        <div class="search-input">
            <span id="esc-search"> <i class="icon-fanhui iconfont"></i></span>
            <input id="search-input"/>
            <span id="begin-search">搜索</span>
        </div>
        <div class="search-result-container" id="search-result-container">

        </div>
    </div>
</div>

        <div class="index-about-mobile">
            <i> Like what you do, do what you like </i>
        </div>
    </div>
    
    <div class="index-middle">
        <!-- Main Content -->
        


<div class="post-container">
    <div class="post-title">
        VS属性设置
    </div>

    <div class="post-meta">
        <span class="attr">发布于：<span>2020-07-12 22:14:38</span></span>
        
        <span class="attr">标签：/
        
        <a class="tag" href="/myblog/tags/#工具" title="工具">工具</a>
        <span>/</span>
        
        
        </span>
        <span class="attr">访问：<span id="busuanzi_value_page_pv"></span>
</span>
</span>
    </div>
    <div class="post-content no-indent">
        <h1 id="1-解决方案和项目文件夹包含关系-c-项目"><a href="#1-解决方案和项目文件夹包含关系-c-项目" class="headerlink" title="1.解决方案和项目文件夹包含关系(c++项目)"></a>1.解决方案和项目文件夹包含关系(c++项目)</h1><p>VS解决方案和各个项目文件夹以及解决方案和各个项目对应的配置文件包含关系，假设新建一个项目ssyy，解决方案起名fangan，注意<strong>解决方案包括项目，此时生成的最外层目录为fangan代表整个解决方案的内容都在这个文件夹内</strong>。在这个fangan文件夹内包含有fangan.sln的解决方案配置文件和一个ssyy文件夹，<strong>ssyy文件夹代表整个ssyy项目的所有内容都在这个文件夹内，这个文件夹内含有ssyy.vcproj的项目配置文件和.h头文件以及.cpp源文件</strong>。如果在fangan解决方案下再建立一个新项目名为ssyy2，则会在fangan文件夹下生成一个ssyy2文件夹存放ssyy2项目的所有内容。</p>
<p><strong>由上面叙述可以总结出，管理器（解决方案或项目）都会对应一个总的文件夹，这个管理器文件夹下存放本管理器的配置文件以及子管理器。比如，解决方案是个管理器，它的文件夹下含有.sln配置文件以及子管理器ssyy项目和子管理器ssyy2项目。</strong></p>
<p><strong>另外，默认情况下，项目属性设置的目录起点为项目配置文件所在位置，实际上就是项目头文件和源文件所在位置。</strong></p>
<p><strong>补充</strong>：vs中建立默认的C#项目和建立默认的C++项目生成的目录结构是不一样的。如果是C#项目，则解决方案总文件夹下就只包含解决方案配置文件sln和一个项目总文件夹(共两个东东)，而项目总文件夹下包含c#源文件、项目配置文件proj、一个Properties属性文件夹、一个obj文件夹和一个bin文件夹，其中obj和bin文件夹下都包含debug和release两个文件夹。obj文件夹下存放中间编译结果（扩展名更加项目类型而不同），而bin文件夹下存放最终生成的结果（扩展名一般为exe或dll）。</p>
<p>而<strong>如果是C++项目，则解决方案总文件夹下就只包含解决方案配置文件sln和一个项目总文件夹和一个Debug文件夹以及一个Release文件夹</strong>（共四个东东，其中Debug和Release文件夹中存放最终生成的结果exe或dll，要注意如果不使用Release生成，则不存在Release文件夹），而<strong>项目总文件夹下包含C++源文件头文件、项目配置文件和一个Debug文件夹以及一个Release文件夹</strong>（一定要注意，此处的Debug和Release文件夹仅仅存放中间编译结果obj，不存放exe和dll之类的东西。如果不使用Release编译，则没有对应的Release文件夹）。</p>
<p><strong>由此可见，c#项目默认生成的文件目录结构更合理，且输出的exe位于总项目文件夹内，而c++项目默认exe位于解决方案总文件夹下。另外c#更合理在，C#使用Bin目录，在Bin目录下包含debug和release两个目录，而C++不使用Bin目录，直接使用debug和releae两个目录。</strong></p>
<h1 id="2-常用项目属性和系统配置变量关系"><a href="#2-常用项目属性和系统配置变量关系" class="headerlink" title="2.常用项目属性和系统配置变量关系"></a>2.常用项目属性和系统配置变量关系</h1><h2 id="2-1-输出目录与输出文件"><a href="#2-1-输出目录与输出文件" class="headerlink" title="2.1.输出目录与输出文件"></a>2.1.输出目录与输出文件</h2><pre><code> 如果我们建立一个默认的vc项目ssyy，他的默认“常规“栏目中，“输出目录”为$(SolutionDir)$(ConfigurationName)，所以调试时会在解决方案文件夹下建立一个debug（ConfigurationName的值为debug）文件夹，并在此文件夹下生成 ssyy.lik链接器 和ssyy.exe文件 。默认“中间目录”为$(ConfigurationName)，所以会在ssyy项目文件夹下（即ssyy.vcproj的项目配置文件所在位置）建立一个debug文件夹，并在该文件夹下生成ssyy.obj二进制文件。默认“链接器”栏目下的“常规”选项下的“输出文件”选项为$(OutDir)$(ProjectName).exe，其中$(OutDir)就已经在“常规”栏目的“输出目录”选项赋值了。【**所以$(OutDir)的值是在常规“输出目录”属性中定义的**】。

另外，经过实际测试，发现**“输出目录”属性只能起到对$(OutDir)系统变量赋值的作用**，和“改变生成的.exe文件存放位置”没任何关系。也就是说，如果“输出目录”中设置的$(OutDir)值在C盘，而“输出文件”中设置输出文件的位置为D盘，最终生成的exe文件会在D盘，**“输出文件”属性才决定输出exe文件的位置**。

而**$(TargetDir)**的值是在生成exe文件后自动赋予值为exe文件所在位置。所以可以说，“输出文件”最终决定exe文件所在的位置，也最终决定了$(TargetDir)的值，$(TargetPath)和$(TargetDir)的行为是类似的，此不赘述。

上面两段说了这么多，总结就是，**默认情况下“输出目录”和“输出文件”两个属性对应的目录是一样的，这样用着方便**（当然，输出文件的值在输出目录的值的基础上还包含有exe文件名）。**如果两个不一样，则中间生成的链接器用的如xx.ilk和xx.pdb文件等在输出目录，而最终生成的xx.exe文件在“输出文件”属性设置的目录中**。
</code></pre>
<p>另外，上面两段话可以总结出，当调试程序时，系统变量$(OutDir)的值是最先确定的，而$(TargetDir)和$(TargetPath)的值是在exe文件生成后才确定的。<strong>也就是说系统变量$(OutDir)的值由VS项目的“输出目录”属性决定，而$(TargetDir)和$(TargetPath)的值由VS项目的“输出文件”属性决定。即设置了VS的“输出目录”属性就相当于设置了$(OutDir)的值，“输出目录”是界面上的提示用于接收用户输入的配置信息，然后把这个具体的配置信息存入系统内容的变量$(OutDir)中。</strong></p>
<h2 id="2-2-工作目录"><a href="#2-2-工作目录" class="headerlink" title="2.2.工作目录"></a>2.2.工作目录</h2><p>其它常用的属性还有，“调试”栏目中的“工作目录”项，这个属性默认情况下是空的，但表示工作目录是工程目录，也就是工程配置文件ssyy.vcproj所在目录。工作目录表示进行某项操作的目的目录，会随着OpenFileDialog、SaveFileDialog等对象所确定的目录而改变。“<strong>工作目录”属性作用是程序运行后唯一识别的默认目录，即工作后只认识这个目录，工作目录这个名字描述的就很形象</strong>，（可以将所依赖的lib和dll库文件所在目录设为工作目录，但<strong>一般是把lib放在解决方案下的Lib目录中，把dll放在解决方案下的Bin目录中</strong>），例如程序运行过程中生成一个txt文本文件，如果在创建文件过程中未指定绝对路径，只指定创建文件的文件名，那么这个文本文件默认就会建立在工作目录中，当然读取一些配置文件也在工作目录中查找，但要说明一下，生成的exe文件跟工作目录没任何关系，也不会放在工作目录中。总的来说，工作目录就是程序运行过程中默认读取的目录。对于dll，如果是程序运行前就进入内存有点像静态链接那样，此时dll就可以放入exe所在的执行目录，如果dll是运行中动态加载的一般放在工作目录，比如插件就放在工作目录。即工作目录就是运行期间唯一能识别的默认目录，工作目录在代码中用GetCurrentDirectory之类的函数获取，具体代码间最下面的附1。工作目录与执行目录可以不同，例如一个人住在北京，但他的工作地点不一定在北京，可能在天津。</p>
<p><strong>对工作目录的补充</strong>：vs中工作目录的设置是给调试用的，也即你启动调试后，启动一个新进程，自动把这个新进程的工作目录设置为vs项目属性中的工作目录，然后新进程启动对应的exe程序。但是如果不使用vs的调试启动exe，而是直接双击exe文件启动一个新进程时，会自动把这个新进程的工作目录设置为exe文件所在的目录，这是和vs启动调试不同的地方。所以<strong>如果发布的时候不把工作目录内的东西拷到exe所在的目录内，就会运行出错，因为此时工作目录不再是vs中设置的了，而是exe文件所在的目录</strong>。最后，说一下，vs中默认的vc++工程的工作目录项目的值是空的，代表默认是vs工程所在目录即.vcproj文件所在目录，c#工程默认没测试，估计和vc的一样。</p>
<h2 id="2-3-命令"><a href="#2-3-命令" class="headerlink" title="2.3.命令"></a>2.3.命令</h2><p>同样在调试选项下的和工作目录选项同一级的选项“<strong>命令</strong>”选项是设置，使用调试时，从哪里启动exe文件，因为一般生成的exe放在bin目录下的debug或release目录下，所以命令选项一般为“Bin$(Configuration)$(ProjectName).exe”，默认也是这个值，当然可以更改，但此时意味着调试状态下启动的exe为“命令”选项中设置的exe文件，而不是默认的bin目录下的debug或release下的exe文件了。最后说一下，上面所说的“调试”是指vs下启动exe，包括debug模式和release模式，不要把调试就理解为只有debug模式。</p>
<p> “调试”栏目中的<strong>“命令（Command）”属性项，这个属性表示调试器要启动的exe文件的全名，</strong>包括路径名，默认为**$(TargetPath)，**而TargetPath就表示目标输出文件的全路径名，所以一般情况下它代表的值就等于“输出文件”属性代表的值。当然你也可以人为的更改“命令”属性的值，比如更改为c:\aa.exe，而“输出文件”的值为c:\bb.exe，此时如果输出文件所在目录没有aa.exe的话（因链接器只生成bb.exe而根本不会生成aa.exe），调试器就不能启动aa.exe，提示找不到aa.exe。当然如果目录中已经有aa.exe文件（可以强制赋值一个bb.exe文件的副本并命名为aa.exe），此时调试器就可以正常调试通过。</p>
<h2 id="2-4-附加依赖项"><a href="#2-4-附加依赖项" class="headerlink" title="2.4.附加依赖项"></a>2.4.附加依赖项</h2><p>“链接器”栏目下的“输入”选项下的“附加依赖项”项。此项是设置程序链接时使用的静态库。相当于链接已经编译好了的“代码”。由此我们可以简单的认为这些库就相当于我们自己写的.cpp文件，只不过这些库是编译好了的.cpp而已（这里只需要库名称即可，搜索路径在其他地方设置）。</p>
<p><strong>“附加依赖性的设置”等同于在代码中写“#pragma comment(lib, “库名称.lib”) ”语句，如果使用相对路径则如下：</strong></p>
<p>#pragma comment(lib,”..\debug\TestLib.lib”);其中的反斜杠要用双反斜杠，因为它是程序解释的双引号包括的字符串，需要转义一下，要区别include，#include “..\TestVideoApplication.h”中并不是由程序解释的字符串，所以不用转义。</p>
<h2 id="2-5-项目设置中可以使用的宏"><a href="#2-5-项目设置中可以使用的宏" class="headerlink" title="2.5.项目设置中可以使用的宏"></a>2.5.项目设置中可以使用的宏</h2><table>
<thead>
<tr>
<th>ConfigurationName</th>
<th>配置名字，通常是Debug或者Release</th>
</tr>
</thead>
<tbody><tr>
<td>IntDir</td>
<td>编译器使用的中间目录，产出obj文件</td>
</tr>
<tr>
<td>OutDir</td>
<td>链接器使用的输出目录</td>
</tr>
<tr>
<td>ProjectDir</td>
<td>项目目录</td>
</tr>
<tr>
<td>ProjectName</td>
<td>项目名字</td>
</tr>
<tr>
<td>SolutionDir</td>
<td>解决方案目录</td>
</tr>
<tr>
<td>TargetDir</td>
<td>目标输出文件所在的目录</td>
</tr>
<tr>
<td>TargetExt</td>
<td>目标输出的扩展名</td>
</tr>
<tr>
<td>TargetFileName</td>
<td>目标输出文件名，包括扩展名</td>
</tr>
<tr>
<td>TargetName</td>
<td>目标输出名，不包括扩展名</td>
</tr>
<tr>
<td>TargetPath</td>
<td>目标输出文件的全路径名</td>
</tr>
</tbody></table>
<h3 id="项目中编译代码时进行宏控制，可在项目名上右键属性-c-c-预处理器-预处理器定义中增删控制宏。"><a href="#项目中编译代码时进行宏控制，可在项目名上右键属性-c-c-预处理器-预处理器定义中增删控制宏。" class="headerlink" title="项目中编译代码时进行宏控制，可在项目名上右键属性-&gt;c&#x2F;c++-&gt;预处理器-&gt;预处理器定义中增删控制宏。"></a>项目中编译代码时进行宏控制，可在项目名上右键属性-&gt;c&#x2F;c++-&gt;预处理器-&gt;预处理器定义中增删控制宏。</h3><h2 id="2-6-VS链接lib-及-dll-文件的方法"><a href="#2-6-VS链接lib-及-dll-文件的方法" class="headerlink" title="2.6.VS链接lib 及 dll 文件的方法"></a>2.6.VS链接lib 及 dll 文件的方法</h2><p> 因为，在调试 Visual Studio 2008 程序时，经常有一些动态链接库（即 dll 文件）需要加载到工程里，这样才能依赖第三方库进行程序调试。</p>
<p>这些动态链接库，往往都是测试版本或是开发中的版本，或者会有若干个版本；这个时候，如果直接把 dll 所在目录加到 PATH 里，则会有潜在冲突的危险；如果直接拷贝到 Visual Studio 的目录下，假如测试工程太多，每次有新版本的动态链接库更新时，你需要更新若干次，拷贝、粘贴苦不堪言。</p>
<p>总体上来说，有几种方法可以改变 Visual Studio 的环境变量设置：</p>
<ol>
<li>直接添加到系统的 PATH 变量里：这个方法最简单，也最直接，但是坏处是会影响全局的 PATH 设置，尤其是你包含着大量测试用的 dll 时。</li>
<li>在 Visual Studio 全局设置里，把 dll 所在目录添加到 PATH 里：通过 Visual Studio 菜单 &#x3D;&#x3D;&gt; 工具 &#x3D;&#x3D;&gt; 选项 &#x3D;&#x3D;&gt; 项目和解决方案 &#x3D;&#x3D;&gt; VC++目录，在下拉框里选择”可执行文件”，然后把 dll 所在路径添加进去。</li>
<li>直接把所有 dll 拷贝到 Visual Studio 工程目录下，或是拷贝到生成可执行文件的文件夹（默认情况下是 Debug 或 Release 目录）下：这个方法也很简单，但是当你有若干个工程时，你每次更新 SDK 及其 dll 文件，你就要把所有的工程都更新，这个不符合文件唯一性的工程性准则。</li>
<li>在调试程序时，让 Visual Studio 帮你切换当前工作目录到 dll 相应的目录下：在 Visual Studio &#x3D;&#x3D;&gt; Project &#x3D;&#x3D;&gt; Properties &#x3D;&#x3D;&gt; Select Configuration &#x3D;&#x3D;&gt; Configuration Properties &#x3D;&#x3D;&gt; Debugging &#x3D;&#x3D;&gt; Working directory 里填上 dll 所在目录，这样当在调试程序时，Visual Studio 会把当前工作目录切换到这个目录下，从而会自动读取本目录下的 dll 文件。这个方法的优点很明显，简单！副作用也很明显，在你切换了当前工作目录后，你可能会找不到程序的配置文件，在程序里写的诸如”.&#x2F;config.ini”全部都找不到了；另外，你要把所有的 dll 都放到这个工作目录里，否则一样会提示说找不到 xxx.dll 的问题。</li>
<li>最后一个方法，也是我认为最好的一个方法，在 Visual Studio 工程属性里把一个目录临时添加到 PATH 环境变量里：MSDN 上也有类似的介绍：How to: Set Environment Variables for Projects，方法很简单，在 “工程属性” &#x3D;&#x3D;&gt; “调试” &#x3D;&#x3D;&gt; “环境”里，添加类似如下所示的内容：PATH&#x3D;%PATH%;$(TargetDir)\DLLS这样就可以把 $(TargetDir)\DLLS 临时添加到该工程所属的系统 PATH 里。</li>
</ol>
<p>大家可以根据项目的实际情况，灵活选用以上方法。 </p>
<h1 id="3-附1：C-获取设置工作目录和执行目录代码"><a href="#3-附1：C-获取设置工作目录和执行目录代码" class="headerlink" title="3.附1：C#获取设置工作目录和执行目录代码"></a>3.附1：C#获取设置工作目录和执行目录代码</h1><p><strong>（1）获取和设置当前工作目录</strong></p>
<p>a)     System.IO.Directory.GetCurrentDirectory()</p>
<p>说明：获取应用程序的当前工作目录的完全限定路径。该方法是对Win32 API的GetCurrentDirectory函数的一个封装。</p>
<p>例如：’”C:\Documents and Settings\Administrator\My Documents”</p>
<p>b)     System.Environment.CurrentDirectory </p>
<p>说明：获取或设置当前工作目录的完全限定路径。该属性内部调用的就是System.IO.Directory.GetCurrentDirectory()方法，二者是效果是等价的。</p>
<p>例如：’”C:\Documents and Settings\Administrator\My Documents”</p>
<p>c)     System.IO.Path.GetFullPath(“.”)</p>
<p>说明：获取指定路径字符串的绝对路径。也可以用GetFullPath(“.”),GetFullPath(“.&quot;)</p>
<p>例如：’”C:\Documents and Settings\Administrator\My Documents”</p>
<p><strong>（2）获取和设置当前执行目录</strong></p>
<p>a)     System.Windows.Forms.Application.StartupPath</p>
<p>说明：获取启动了应用程序的可执行文件的路径，不包括可执行文件的名称。常用于WinForm.</p>
<p>例如：’”D:\Projects\MyTest\bin”</p>
<p>b)     System.AppDomain.CurrentDomain.BaseDirectory</p>
<p>说明：获取基目录，它由程序集冲突解决程序用来探测程序集。返回路径末尾带“\”</p>
<p>例如：’”D:\Projects\MyTest\bin”</p>
<p>c)     System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase</p>
<p>说明：获取或设置包含该应用程序的目录的名称。返回路径末尾带“\”</p>
<p>例如：’”D:\Projects\MyTest\bin”</p>
<p><strong>（3）获取和设置当前执行目录，包括可执行文件名</strong></p>
<p>a)     System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName</p>
<p>说明：获取模块的完整路径。包括可执行文件的名称。</p>
<p>例如：’”D:\Projects\MyTest\bin\MyTest.exe”</p>
<p>b)     System.Windows.Forms.Application.ExecutablePath</p>
<p>说明：获取启动了应用程序的可执行文件的路径，包括可执行文件的名称。</p>
<p>例如：’”D:\Projects\MyTest\bin\MyTest.exe”</p>
<p>c)     System.Reflection.Assembly.GetExecutingAssembly().Location</p>
<p>说明：如果包含清单的已加载文件没有被影像复制，则获取该文件的基本代码格式的位置。</p>
<p>例如：’”D:\Projects\MyTest\bin\MyTest.exe”</p>
<p>d)     System.Reflection.Assembly.GetExecutingAssembly().CodeBase</p>
<p>说明：获取最初指定的程序集的位置，例如，在AssemblyName对象中指定的位置。</p>
<p>例如：’”file:&#x2F;&#x2F;&#x2F;D:&#x2F;Projects&#x2F;MyTest&#x2F;bin&#x2F;MyTest.exe”</p>
<h1 id="4-附2：vs（主要是-Net）中常用的各种类型的文件"><a href="#4-附2：vs（主要是-Net）中常用的各种类型的文件" class="headerlink" title="4.附2：vs（主要是.Net）中常用的各种类型的文件"></a>4.附2：vs（主要是.Net）中常用的各种类型的文件</h1><p>附：*.ascx *.asax *.aspx.resx *.asax.resx是什么文件</p>
<p>sln：解决方案文件，为解决方案资源管理器提供显示管理文件的图形接口所需的信息。 .csproj:项目文件，创建应用程序所需的引用、数据连接、文件夹和文件的信息。 .aspx：Web 窗体页由两部分组成：视觉元素（HTML、服务器控件和静态文本）和该页的编程逻辑。Visual Studio 将这两个组成部分分别存储在一个单独的文件中。视觉元素在.aspx 文件中创建。.aspx.cs：Web 窗体页的编程逻辑位于一个单独的类文件中，该文件称作代码隐藏类文件（.aspx.cs）。 .cs： 类模块代码文件。业务逻辑处理层的代码。 .asax：Global.asax 文件（也叫做 ASP.NET 应用程序文件）是一个可选的文件，该文件包含响应 ASP.NET 或 HTTP 模块引发的应用程序级别事件的代码。.config：Web.config 文件向它们所在的目录和所有子目录提供配置信息。 .aspx.resx&#x2F;.resx：资源文件，资源是在逻辑上由应用程序部署的任何非可执行数据。通过在资源文件中存储数据，无需重新编译整个应用程序即可更改数据。 .XSD:XML schema的一种.从DTD,XDR发展到XSD .pdb:PDB（程序数据库）文件保持着调试和项目状态信息，从而可以对程序的调试配置进行增量链接。 .suo:解决方案用户选项,记录所有将与解决方案建立关联的选项，以便在每次打开时，它都包含您所做的自定义设置。 .asmx:asmx 文件包含 WebService 处理指令，并用作 XML Web services 的可寻址入口点 .vsdisco（项目发现）文件 基于 XML 的文件，它包含为 Web 服务提供发现信息的资源的链接 (URL)。 .htc:一个HTML文件,包含脚本和定义组件的一系列HTC特定元素.htc提供在脚本中implement组件的机制 </p>
<p>.ascx 是用户控件代码文件.aspx webform html脚本文件.cs 是c#类文件).vb 是vb类文件).aspx.cs 和你的webform相关的后台c#代码文件,其实跟.cs是一样的.aspx.vb 和你的webform相关的后台VB代码文件,其实跟.vb是一样的web.config 配置文件.xml xml文件</p>
<p>.css 样式表文件</p>
<hr>

        
            <div class="donate-container">
    <div class="donate-button">
        <button id="donate-button">赞赏</button>
    </div>
    <div class="donate-img-container hide" id="donate-img-container">
        <img id="donate-img" src="" data-src="/myblog/img/donate.jpg">
        <p> 感谢鼓励 </p>
    </div>
</div>
        
        <br />
        <div id="comment-container">
        </div>
        <div id="disqus_thread"></div>
        <div id="lv-container"></div>
        <div class="giscus"></div>
    </div>
</div>

    </div>
</div>


<footer class="footer">
    <ul class="list-inline text-center">
        
        

        

        

        
        <li>
            <a target="_blank"  href="https://github.com/samuel-24276">
                            <span class="fa-stack fa-lg">
                                <i class="iconfont icon-github"></i>
                            </span>
            </a>
        </li>
        

        

    </ul>
    
    <p>
        <span>/</span>
        
        <span><a target="_blank" rel="noopener" href="https://github.com/samuel-24276">samuel-24276&#39;s Page</a></span>
        <span>/</span>
        
        <span><a target="_blank" rel="noopener" href="https://beian.miit.gov.cn/">北京-未备案</a></span>
        <span>/</span>
        
        <span><a href="#">返回顶部</a></span>
        <span>/</span>
        
    </p>
    
    <p>
        <span id="busuanzi_container_site_pv">
            <span id="busuanzi_value_site_pv"></span>PV
        </span>
        <span id="busuanzi_container_site_uv">
            <span id="busuanzi_value_site_uv"></span>UV
        </span>
        Created By <a target="_blank" rel="noopener" href="https://hexo.io/">Hexo</a>  Theme <a target="_blank" rel="noopener" href="https://github.com/aircloud/hexo-theme-aircloud">AirCloud</a></p>
</footer>




</body>

<script>
    // We expose some of the variables needed by the front end
    window.hexo_search_path = "search.json"
    window.hexo_root = "/myblog/"
    window.isPost = true
</script>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>

<script src="/myblog/js/index.js"></script>

<script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>






    <script type="text/javascript">
       (function() {
           if (typeof LivereTower === 'function') { return; }

           var j, d = document.getElementById('lv-container');

           d.setAttribute('data-id','city');
           d.setAttribute('data-uid' , 'MTAyMC80OTA5OC8yNTU5Mw==');

           j = document.createElement('script');
           j.src = 'https://cdn-city.livere.com/js/embed.dist.js';
           j.async = true;

           d.appendChild(j);
       })();
    </script>
    <noscript>为正常使用来必力评论功能请激活JavaScript</noscript>
    </div>

</html>
